package cn.windfly.don.pojo;

public abstract class RegexKeys {
    /**
     * 默认为只允许<br>
     * 字母<br>
     * 数字<br>
     * 中文<br>
     * 空格<br>
     * 和以下字符　-!%&.*()_+=[]{}|\;':/?<>，。‘’“”（）！？：；、%￥•……——*—
     */
    public static final String DEFAULT = "[-\u4e00-\u9fa5\\w\\d\\s!%&.\\(\\)_+=\\[\\]}{\\/|;:'\\\\?<>,.，。‘’“”（）！？：；、%￥……——*·]*";
    /**
     * 只能是中文，字母，数字
     */
    public static final String CHINESE_CHARACTER_NUMBER = "[\u4e00-\u9fa5a-zA-Z\\d]*";   
    /**
     * 只有中文字母和数字逗号
     */
    public static final String CHINESE_NUMBER_CHARATER_POINT = "[\u4e00-\u9fa5\\da-zA-Z.]*";
    /**
     * 只能是中文
     */
    public static final String CHINESE_ONLY = "[\u4e00-\u9fa5]*";
    /**
     * 只能是中文或字母
     */
    public static final String CHINESE_CHARACTER = "[\u4e00-\u9fa5a-zA-Z]*";    
    /**
     * 只能是中文或数字
     */
    public static final String CHINESE_NUMBER = "[\u4e00-\u9fa5\\d]*";
    /**
     * 只能是数字
     */
    public static final String INTEGER_NOTEMTPY = "[+-]?\\d+";
    /**
     * 只能是字母
     */
    public static final String CHARACTER_ONLY = "[a-zA-Z]*";
    /**
     * 车辆客位，只能是正整数(1-100)
     */
    public static final String RATED_SEAT = "1|[1-9]\\d?|100|\\s*";
    /**
     * 中英文名<br>
     * 中文字母<br>
     * 减号-<br>
     * 单引号'<br>
     * 空格
     */
    public static final String CHINESE_ENGLISH_NAME = "[-\u4e00-\u9fa5\\w'\\s]*";
    /**
     * 电话号码<br>
     * (0551)123456789-1234<br>
     * 123456789-1234<br>
     * 123456789
     */
    public static final String TELEPHONE = "((?:\\(0[0-9]{2,3}\\))?\\d+(?:\\-\\d+)?)?";
    /**
     * Email<br>
     * test@test.com<br>
     */
    public static final String EMAIL = "(?:\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)?";
    /**
     * 只有字母和数字
     */
    public static final String CHARATER_NUMBER_NOTEMTPY = "[a-zA-Z\\d]";
    /**
     * 只有字母、数字、点
     */
    public static final String CHARATER_NUMBER_POINT = "[.a-zA-Z\\d]*";
   
    /**
     * 发动机参数<br>
     * 字母数字和符号-()<>
     */
    public static final String ENGINENO = "[-()<>\\da-zA-Z]*";
    /**
     * 底盘号 规则与发动机参数相同<br>
     * 字母数字和符号-()<>
     */
    public static final String CHASSISNUMBER = ENGINENO;;

    /**
     * 验证是否是boolean类型的输入
     */
    public static final String BOOLEAN = "[0,1]";

    /**
     * 验证URI地址，不以http开头,只能含有字母数据下划线和/?&%-.这几个符号
     */
    public static final String RESOURCE_URI = "[\\w\\/?&%-.]*";

    /**
     * 验证短信息内容，内容中不能有逗号和分割符。长度不超过100
     */
    public static final String SHORT_MESSAGE_CONTENT = "[^,|]{0,100}";
    
    /**
     * 验证类似yyyy-MM-dd格式的日期
     */
    public static final String DATE = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)";
    
    /**
     * 验证四种格式格式的日期:
     * yyyy-MM-dd
     * yyyy/MM/dd
     * yyyy.MM.dd
     * 2010年10月10日 
     */
    public static final String DATES = "^\\d{4}-[0,1]?\\d-[0-3]?\\d|\\d{2}-[0,1]?\\d-[0-3]?\\d|\\d{4}\\/[0,1]?\\d\\/[0-3]?\\d|\\d{2}\\/[0,1]?\\d\\/[0-3]?\\d}"
			+ "|\\d{4}\\.[0,1]?\\d\\.[0-3]?\\d|\\d{2}\\.[0,1]?\\d\\.[0-3]?\\d|\\d{4}\\u5E74[0,1]?\\d\\u6708[0-3]?\\d\\u65E5$";

    /**
     * 验证IP地址
     */
    public static final String IP_ADDRESS = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";
    
    /**
     * 驾驶员身份证号码验证
     */
    public static final String DRIVER_IDCARD_CONTENT = "((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82|91)\\d{4})((((19|20)(([02468][048])|([13579][26]))0229))|((20[0-9][0-9])|(19[0-9][0-9]))((((0[1-9])|(1[0-2]))((0[1-9])|(1\\d)|(2[0-8])))|((((0[1,3-9])|(1[0-2]))(29|30))|(((0[13578])|(1[02]))31))))((\\d{3}(x|X))|(\\d{4}))";
    
    /**
     * 驾驶员姓名
     */
    public static final String DRIVER_NAME = "^[\u4e00-\u9fa5]{2,4}$";
    
    /**
     * 性别
     */
    public static final String DRIVER_GENDER = "^\u7537||\u5973|| $";
    
    /**
     * 血型
     */
    public static final String BLOOD_TYPE = "^AB|ab|[a,b,o,A,B,O, |(\u5176\u4ED6)]$";
    
    /**
     * 紧急联系方式,联系电话
     * 0551-12345678-1234
     * (0551)12345678-1234
     * 0551-12345678
     * (0551)12345678
     * 13912345678
     * 
     * 
     */
    public static final String PHONE_NUMPER ="^((13[0-9])|(15[0-9])|(18[0-9]))\\d{8}|\\(?0\\d{2}(\\)?|-)\\d{8}(-\\d{4})?|\\(?0\\d{3}(\\)?|-)\\d{7,8}(-\\d{4})?|| $";
    
    /**
     * 驾驶证证号
     */
    public static final String DRIVE_LICENSE_NUMBER  ="^[0-9a-zA-Z]{15,18}$";
    
    /**
     * 从业资格证号
     */
    public static final String JOB_LICENSE_NUMBER  ="^[0-9]{0,19}|| $";
    
    /**
     * 民族
     */
    public static final String NATION = "^[\u4e00-\u9fa5]{0,5}$";
    
    /**
     * 车型
     */
    public static final String MOTORCYCLE_TYPE = "^(A[1-3]|B[1-2]|C[1-4])|(\u5176\u4ED6)$";
    
    /**
     * 身份证号码
     * 340123198001011234  18位
     * 34012319800101123X  18位末尾位X
     * 310123660101241  15位
     */
    public static final String IDCARD_NUMBER = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}[0-9,x,X]|[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";
    

}
